package com.bnd.service;

import com.bnd.common.BaseResponse;
import org.springframework.core.io.Resource;
import org.springframework.web.multipart.MultipartFile;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.MalformedURLException;

public interface FileService {
    /**
     * 文件上传
     * @param file 上传的文件
     * @return 文件访问URL
     */
    String uploadFile(MultipartFile file) throws IOException;

    /**
     * 音频文件上传（带校验）
     * @param file 上传的音频文件
     * @return 文件访问URL
     */
    String uploadAudioFile(MultipartFile file) throws IOException;

    /**
     * 文件下载
     * @param fileUrl 文件访问URL
     * @param response HTTP响应对象
     * @throws IOException IO异常
     */
    void downloadFile(String fileUrl, HttpServletResponse response) throws IOException;

    /**
     * 文件删除
     * @param fileUrl 文件访问URL
     * @return 是否删除成功
     */
    boolean deleteFile(String fileUrl);

    /**
     * 文件预览
     * @param fileUrl 文件访问URL
     * @return Resource资源对象
     * @throws MalformedURLException URL异常
     */
    Resource previewFile(String fileUrl) throws MalformedURLException;
}
